1. Field of the Invention
The invention generally relates to audio codec controllers such as AC (Audio Codec) '97 controllers, and in particular to the data transfer between such controllers and an audio codec.
2. Description of the Related Art
Present computer systems such as personal computers are usually provided with audio capabilities and include sound cards and speakers. PC (Personal Computer) audio hardware and applications are advancing fast, and there are a lot of fascinating new applications, including 3D gaming with positional audio, DVD playback, internet telephony, voice-recognition software, and so on. Many of these new applications require expensive sound cards while other applications can be used with low cost hardware.
Many motherboards include a specific sound chip on-board for providing built in audio capabilities. Other motherboards can provide such functionality without requiring the provision of a specific integrated circuit chip that does all the audio signal processing. Instead, such motherboards may include circuitry in compliance with the AC '97 specification. The AC '97 functionality may be performed by the chipset on the motherboard, e.g. by a southbridge device.
The AC '97 specification defines an audio codec architecture and digital interface which is specifically designed for implementing audio and modem I/O functionality in mainstream PC systems. In such architecture, an interface is provided that allows audio data to be processed in a rather inexpensive additional chip which includes an analog-to-digital converter together with some additional analog circuits. The real audio data processing is however done by the CPU (Central Processing Unit) of the computer system. An AC '97 architecture is shown in FIG. 1. The system includes an audio codec controller 110 which is also referred to as digital controller hereafter, and a set of, e.g., two codecs 180, 190. The codecs 180, 190 may be located on a circuit board or card 120, and there may be a primary codec 180 and a secondary codec 190. The codecs may be audio codecs, modem codecs, or combined audio/modem codecs, and both codecs 180, 190 may be provided in one or two physically separate integrated circuit chips.
The codecs 180, 190 perform digital-to-analog and analog-to-digital conversion, mixing, and analog I/O for audio (or modem) purposes, and always function as slaves to the audio codec controller 110. The controller is typically either a PCI (Peripheral Component Interconnect) accelerator or a controller that comes integrated within core logic chipsets. The digital link that connects the audio codec controller 110 to the codecs 180, 190 is a bi-directional, 5-wire, serial TDM (Time Division Multiplexing) format interface, referred to as AC-link. The AC-link supports connections between a single audio codec controller 110 and up to four codecs 180, 190.
The audio codec controller 110 is further connected to the host memory 100 of the computer system, e.g. by means of a PCI bus. In the audio codec controller 110, there are respective interface controllers 130, 140 for controlling the data transfer at both interfaces. That is, the digital controller 110 comprises a bus master controller 130 and an AC-link interface controller 140.
As can be seen from FIG. 1, the audio codec controller 110 further comprises an input FIFO (first-in-first-out) buffer 150 and an output FIFO buffer 160 which are controlled by the FIFO controller 170. The buffers 150, 160 store data relating to one of the two independent data streams of the incoming and outgoing traffic. That is, the bus master controller 130 accesses the host memory 100 to receive audio data needed by one of the codecs 180, 190. The received data are stored in the output FIFO buffer 160 and are there made available to the AC-link interface controller 140 to be sent to the codec 180, 190. The input FIFO buffer 150 performs the corresponding function with respect to the data stream which originates at the codecs 180, 190.
In such audio sub-systems, there may be more than two channels in use. Particularly in 6-channel configurations, there may be separate channels for audio left-front, right-front, left-rear, right-rear, center-front, and subwoofer. In such cases, the handling of the output FIFO buffer 160 by FIFO controller 170 becomes rather difficult, and in particular the AC-link interface controller 140 needs to be provided with complicated hardware circuitry for accessing the output FIFO buffer 160 when building the serial data for the AC-link. This may lead to significant circuit development and manufacturing costs.